package test0302;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * @author 兴趣使然黄小黄
 * @version 1.0
 * 给定任意一个自然数集合，将该集合按模 5 同余关系分成五个等价类
 */
@SuppressWarnings({"all"})
public class Main05 {

    public static void main(String[] args) {
        // 模 5 同余 可能的余数有 0、 1、 2、 3、 4，则 划分为 5 个等价类
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入集合: ");
        String collection = scanner.nextLine();
        List[] equivalenceClass = equivalenceClass(collection);
        System.out.println("[0]R = " + equivalenceClass[0]);
        System.out.println("[1]R = " + equivalenceClass[1]);
        System.out.println("[2]R = " + equivalenceClass[2]);
        System.out.println("[3]R = " + equivalenceClass[3]);
        System.out.println("[4]R = " + equivalenceClass[4]);
    }

    public static List[] equivalenceClass(String collection){
        // ret[0] 存储 余数为 0 的等价类，以此类推
        List[] ret = new List[5];
        for (int i = 0; i < 5; i++) {
            ret[i] = new ArrayList<Integer>();
        }
        // 用于分类
        for (String item : collection.split(" ")) {
            int num = Integer.valueOf(item);
            int category = num % 5;
            ret[category].add(num);
        }
        return ret;
    }
}
